#ifndef REDNEURONAL_H_
#define REDNEURONAL_H_
#include <string.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <ctime>
#include <cstdlib>
#include <sstream>
#include "Sigmoid.h"
#include "Heaviside.h"
#include "MultiLayerPerceptron.h"
#include "ProcesadorImagen.h"


using namespace std;
using namespace neural;

class RedNeuronal {
private:
	MultiLayerPerceptron* mlp;
	void aprende(string path, float salida);
public:
	virtual ~RedNeuronal();

	RedNeuronal(MultiLayerPerceptron* mlp);
	void aprender();
	string interpretar (string path);
        void guardarRed();
        void filtrar(){
    this->aprende("Aprender/1rotado.bmp", 1);
    this->aprende("Aprender/2rotado.bmp", 2);
    this->aprende("Aprender/3rotado.bmp", 3);
    this->aprende("Aprender/4rotado.bmp", 4);
    this->aprende("Aprender/5rotado.bmp", 5);
    this->aprende("Aprender/6rotado.bmp", 6);
    this->aprende("Aprender/7rotado.bmp", 7);
    this->aprende("Aprender/8rotado.bmp", 8);
    this->aprende("Aprender/comaRotada.bmp", 22);            
    this->aprende("Aprender/1raro.bmp", 1);
    this->aprende("Aprender/7raro.bmp", 7);
    this->aprende("Aprender/comaRara.bmp", 22);
}
};

#endif /* REDNEURONAL_H_ */
